查看原文
其他

带你少走弯路:强烈推荐的TensorFlow快速入门资料和翻译(可下载)

机器学习初学者 机器学习初学者 2022-05-16

知识更新非常快,需要一直学习才能跟上时代进步,举个例子:吴恩达老师在深度学习课上讲的TensorFlow使用,这个肯定是他近几年才学的,因为谷歌开源了TensorFlow也就很短的时间。

吴恩达老师以前还在用Octave教学呢,但是后来就不用那个工具了,因为:过时了!需要学习新知识了。

本文根据群友的要求,整理了4份TensorFlow的入门资料,很负责任地说:看完这些资料,TensorFlow基本入门了,接下来碰到问题能自己查资料解决了!

(本文作者:黄海广)

推荐资料

1.吴恩达深度学习笔记中的TensorFlow部分

这部分可以说是一个科普入门,学完后对TensorFlow会有一定的理解,接下来会容易点(第二门课第三周第3.11节,对应笔记p247-253,笔记可以在我的github下载:github介绍

笔记截图:

图:深度学习笔记截图

2.TensorFlow2.0样例(github标星34000+)

TensorFlow推出2.0版本后,TF2.0相比于1.x版本默认使用Keras、Eager Execution、支持跨平台、简化了API等。这次更新使得TF2.0更加的接近PyTorch,一系列烦人的概念将一去不复返。推荐一位大神写的TF2.0的样例代码,推荐参考。

资源地址:

https://github.com/aymericdamien/TensorFlow-Examples


资源介绍:

本资源旨在通过示例轻松深入了解TensorFlow。 为了便于阅读,它包括notebook和带注释的源代码。

它适合想要找到关于TensorFlow的清晰简洁示例的初学者。 除了传统的“原始”TensorFlow实现,您还可以找到最新的TensorFlow API实践(例如layers,estimator,dataset, ......)。

最后更新(08/17/2019):添加新示例(TF2.0)。


配置环境:

python 3.6以上,TensorFlow 1.8+


资源目录:

0  - 先决条件

  • 机器学习简介

  • MNIST数据集简介

1  - 简介

  • Hello World(包含notebook和py源代码)。非常简单的例子,学习如何使用TensorFlow打印“hello world”。

  • 基本操作(包含notebook和py源代码)。一个涵盖TensorFlow基本操作的简单示例。

  • TensorFlow Eager API基础知识(包含notebook和py源代码)。开始使用TensorFlow的Eager API。


2  - 基础模型

  • 线性回归(包含notebook和py源代码)。使用TensorFlow实现线性回归。

  • 线性回归(eager api)(包含notebook和py源代码)。使用TensorFlow的Eager API实现线性回归。

  • Logistic回归(包含notebook和py源代码)。使用TensorFlow实现Logistic回归。

  • Logistic回归(eager api)(包含notebook和py源代码)。使用TensorFlow的Eager API实现Logistic回归。

  • 最近邻(包含notebook和py源代码)。使用TensorFlow实现最近邻算法。

  • K-Means(包含notebook和py源代码)。使用TensorFlow构建K-Means分类器。

  • 随机森林(包含notebook和py源代码)。使用TensorFlow构建随机森林分类器。

  • Gradient Boosted Decision Tree(GBDT)(包含notebook和py源代码)。使用TensorFlow构建梯度提升决策树(GBDT)。

  • Word2Vec(词嵌入)(包含notebook和py源代码)。使用TensorFlow从Wikipedia数据构建词嵌入模型(Word2Vec)。

3  - 神经网络

  • 监督学习部分

  • 简单神经网络(包含notebook和py源代码)。构建一个简单的神经网络(如多层感知器)来对MNIST数字数据集进行分类。Raw TensorFlow实现。

  • 简单神经网络(tf.layers / estimator api)(包含notebook和py源代码)。使用TensorFlow'layers'和'estimator'API构建一个简单的神经网络(如:Multi-layer Perceptron)来对MNIST数字数据集进行分类。

  • 简单神经网络(Eager API)(包含notebook和py源代码)。使用TensorFlow Eager API构建一个简单的神经网络(如多层感知器)来对MNIST数字数据集进行分类。

  • 卷积神经网络(包含notebook和py源代码)。构建卷积神经网络以对MNIST数字数据集进行分类。Raw TensorFlow实现。

  • 卷积神经网络(tf.layers / estimator api)(包含notebook和py源代码)。使用TensorFlow'layers'和'estimator'API构建卷积神经网络,对MNIST数字数据集进行分类。

  • 递归神经网络(LSTM)(包含notebook和py源代码)。构建递归神经网络(LSTM)以对MNIST数字数据集进行分类。

  • 双向LSTM(包含notebook和py源代码)。构建双向递归神经网络(LSTM)以对MNIST数字数据集进行分类。

  • 动态LSTM(包含notebook和py源代码)。构建一个递归神经网络(LSTM),执行动态计算以对不同长度的序列进行分类。


  • 无监督

  • 自动编码器(包含notebook和py源代码)。构建自动编码器以将图像编码为较低维度并重新构建它。

  • 变分自动编码器((包含notebook和py源代码)。构建变分自动编码器(VAE),对噪声进行编码和生成图像。

  • GAN(Generative Adversarial Networks)(包含notebook和py源代码)。构建生成对抗网络(GAN)以从噪声生成图像。

  • DCGAN(Deep Convolutional Generative Adversarial Networks)(包含notebook和py源代码)。构建深度卷积生成对抗网络(DCGAN)以从噪声生成图像。


4  - 工具

  • 保存和还原模型(包含notebook和py源代码)。使用TensorFlow保存和还原模型。

  • Tensorboard  - 图形和损失可视化(包含notebook和py源代码)。使用Tensorboard可视化计算图并绘制损失。

  • Tensorboard  - 高级可视化(包含notebook和py源代码)。深入了解Tensorboard;可视化变量,梯度等......


5  - 数据管理

  • 构建图像数据集(包含notebook和py源代码)。使用TensorFlow数据队列,从图像文件夹或数据集文件构建您自己的图像数据集。

  • TensorFlow数据集API(包含notebook和py源代码)。引入TensorFlow数据集API以优化输入数据管道。


6  - 多GPU

  • 多GPU的基本操作(包含notebook和py源代码)。在TensorFlow中引入多GPU的简单示例。

  • 在多GPU上训练神经网络(包含notebook和py源代码)。一个清晰简单的TensorFlow实现,用于在多个GPU上训练卷积神经网络。


数据集

  • 一些示例需要MNIST数据集进行训练和测试。官方网站:http://yann.lecun.com/exdb/mnist/

3.《机器学习实战:基于Scikit-Learn和TensorFlow》

推荐一本机器学习和TensorFlow入门的好书:《机器学习实战:基于Scikit-Learn和TensorFlow》。

本书主要分为两部分,第一部分(第1~8章)涵盖机器学习的基础理论知识和基本算法,从线性回归到随机森林等,可以帮助你掌握Scikit-Learn的常用方法;第二部份(第9~16章)探讨深度学习和常用框架TensorFlow,手把手教你使用TensorFlow搭建和训练深度神经网络,以及卷积神经网络。

这本书受到广大机器学习爱好者的好评,可以说是机器学习入门宝书,豆瓣评分8.2。

这本书假定您有一些 Python 编程经验,并且比较熟悉 Python 的主要科学库,特别是 NumPy,Pandas 和 Matplotlib 。

  • 本书作者公开了配套的源代码:

https://github.com/ageron/handson-ml

  • 国内一个公益组织对原版英文书进行了翻译,制作成markdown文件(md文件推荐使用typora阅读),可以在github下载:

https://github.com/apachecn/hands-on-ml-zh

针对国内下载速度慢,本站对两个资源进行打包,可以在百度云下载:

链接:

https://pan.baidu.com/s/1jihUZrXblxhrVA5FBGU3RQ

提取码:0xye

若被和谐请留言。


4.《python深度学习》

TensorFlow团队的Josh Gordon推荐这本书,TF2.0基于Keras。如果你是一个深度学习新手,最好从这本书入手。当然这本书里的代码需要改一下,但非常简单:

import keras -> from tensorflow import keras

python深度学习》由Keras之父、现任Google人工智能研究员的弗朗索瓦•肖莱(François Chollet)执笔,详尽介绍了用Python和Keras进行深度学习的探索实践,包括计算机视觉、自然语言处理、产生式模型等应用。书中包含30多个代码示例,步骤讲解详细透彻。

作者在github公布了代码,代码几乎囊括了本书所有知识点。在学习完本书后,读者将具备搭建自己的深度学习环境、建立图像识别模型、生成图像和文字等能力。但是有一个小小的遗憾:代码的解释和注释是全英文的,即使英文水平较好的朋友看起来也很吃力。

本站认为,这本书和代码是初学者入门深度学习及Keras最好的工具。

我对全部代码做了中文解释注释,并下载了代码所需要的一些数据集(尤其是“猫狗大战”数据集),并对其中一些图像进行了本地化,代码全部测试通过。(请按照文件顺序运行,代码前后有部分关联)。

以下代码包含了全书80%左右的知识点,代码目录:

2.1: A first look at a neural network( 初识神经网络)

3.5: Classifying movie reviews(电影评论分类:二分类问题)

3.6: Classifying newswires(新闻分类:多分类问题 )

3.7: Predicting house prices(预测房价:回归问题)

4.4: Underfitting and overfitting( 过拟合与欠拟合)

5.1: Introduction to convnets(卷积神经网络简介)

5.2: Using convnets with small datasets(在小型数据集上从头开始训练一个卷积

5.3: Using a pre-trained convnet(使用预训练的卷积神经网络)

5.4: Visualizing what convnets learn(卷积神经网络的可视化)

6.1: One-hot encoding of words or characters(单词和字符的 one-hot 编码)

6.1: Using word embeddings(使用词嵌入)

6.2: Understanding RNNs(理解循环神经网络)

6.3: Advanced usage of RNNs(循环神经网络的高级用法)

6.4: Sequence processing with convnets(用卷积神经网络处理序列)

8.1: Text generation with LSTM(使用 LSTM 生成文本)

8.2: Deep dream(DeepDream)

8.3: Neural style transfer( 神经风格迁移)

8.4: Generating images with VAEs(用变分自编码器生成图像)

8.5: Introduction to GANs(生成式对抗网络简介)


中文注释与解释如图:

图:代码的中文注释与解释

作者的github:

https://github.com/fchollet/deep-learning-with-python-notebooks

中文注释代码:

https://github.com/fengdu78/machine_learning_beginner/tree/master/deep-learning-with-python-notebooks

暂时想到这么多,欢迎留言补充。(黄海广)

机器学习初学者


黄海广博士创建的公众号,黄海广博士个人知乎粉丝21000+,github排名全球前120名(30000+)。本公众号致力于人工智能方向的科普性文章,为初学者提供学习路线和基础资料。原创作品有:吴恩达机器学习个人笔记、吴恩达深度学习笔记等。

往期精彩回顾

备注:加入本站微信群或者qq群,请回复“加群

加入知识星球(4100+用户,ID:92416895),请回复知识星球

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存